Dozent | Dr. J. Hudelmaier |
Sprechstunde | n.V. |
Zeit | Do, 1416 |
Umfang | 2+2 |
Beginn | 17.4.97 |
Ort | siehe Aushang |
Prüfungsfach | Theoretische Informatik |
Beschreibung:
Logikprogramme können sowohl als Rechenprozeduren als auch als
logische Formeln gelesen werden, und für gewòhnliche Logikprogramme
stimmen die beiden Lesarten überein. Bekanntlich lassen sich aber
auch in prozeduralen Programmiersprachen logische Konstrukte (z. B. if
then else) auf natürliche Weise einführen. Wenn man diese
nützlichen Konstrukte jedoch wieder auf die Logikprogrammierung übertragen
will (z. B. als negation as failure), so geraten sie in Konflikt
mit der logischen Lesart der Programme selbst. Hat man etwa ein einfaches
Programm mit einem einzigen Faktum
null(0).
und einer einzigen Regel
nichtnull(X) <= ¬ null(X).
so würde die prozedurale Lesart der Negation liefern, daß
nichtnull(1)$, gilt, weil null(1)$ vom Programm nicht bestätigt
wird. Logisch ist nichtnull(1) aus dem Programm aber keineswegs
ableitbar. indent In der Veranstaltung werden verschiedene Ansätze
besprochen werden, diese Diskrepanz zu heilen.